import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.*;
/**
 * clase Obstaculo
 * 
 * @author  rolando delgado salcedo
 * @version version1
 */
public abstract class Obstaculo extends Actor
{
    /**
     * dir variable que se utiliza cambiar de dir en caso de que encuentre el limite
     * img es una variable de tipo imagen
     * color para saber si el obstaculo llego al limite
     */
    private int dir=1;
    private GreenfootImage img;
    private Color color=new Color(0,0,0);
   
    public void act() 
    {
        // Add your action code here.
    }    
    /**
     * metodo abstracto donde se ocupa el polimorfismo ya que todas sus subclases se mueven 
     * de forma distinta
     */
    abstract void mover();
    /**
     * //metodo donde checa si es limite @return regresa un valor verdadero o false en caso de que sea limite
     */
    public boolean eslimite()//metodo donde checa si es limite @return regresa un valor verdadero o false en caso de que sea limite
    {
        
        int x,y;//variables para guardar las coordenadas del objeto
        boolean res=false;//variable para indicar si fue limite
        img=super.getImage();//se guardan los datos de la imagen en esta variable
        y=getY()-img.getHeight()/2;//la coordenada del objeto
        x=getX()-img.getWidth()/2;//la coordenada del objeto
        World mundo=getWorld();//regresa una variable de tipo mundo
        if(mundo.getColorAt(getX(),getY()).equals(color))//si las coordenadas del obtaculo son iguales a el color
        {   
            res=true;//es un limite
            dir=dir*-1;//y cambia de dir para que no pase
        }
        return(res);//regresa el resultado de limite
    }
}
